package com.puntodonna.fogliocassa.client.gin;

import com.google.gwt.event.shared.EventBus;
import com.google.gwt.inject.client.AsyncProvider;
import com.google.gwt.inject.client.GinModules;
import com.google.gwt.inject.client.Ginjector;
import com.gwtplatform.dispatch.client.gin.DispatchAsyncModule;
import com.gwtplatform.mvp.client.proxy.PlaceManager;
import com.puntodonna.fogliocassa.client.app.place.fogliocassa.FoglioCassaPresenter;
import com.puntodonna.fogliocassa.client.app.place.login.LoginPresenter;
import com.puntodonna.fogliocassa.client.app.presenter.header.HeaderPresenter;
import com.puntodonna.fogliocassa.client.app.presenter.main.MainPresenter;
import com.puntodonna.fogliocassa.client.resources.FoglioCassaResources;

@GinModules({ DispatchAsyncModule.class, ClientModule.class })
public interface ClientGinjector extends Ginjector {

	EventBus getEventBus();

	PlaceManager getPlaceManager();
	
	FoglioCassaResources getFoglioCassaResources();

	AsyncProvider<FoglioCassaPresenter> getFoglioCassaPresenter();

	AsyncProvider<MainPresenter> getMainPresenter();

	AsyncProvider<LoginPresenter> getLoginPresenter();

	AsyncProvider<HeaderPresenter> getHeaderPresenter();
}
